#include <iostream>
#include <thread>

void threadHandle1()
{
    // 子线程睡眠2秒
    std::this_thread::sleep_for(std::chrono::seconds(2));
    
    std::cout<< std::this_thread::get_id() << std::endl;
    std::cout<< "Hello thread!" << std::endl;
}

int main()
{
    // 创建一个线程对象，传入一个线程函数，新线程就开始运行了
    std::thread t1(threadHandle1);
    // 主线程阻塞，等待子线程结束后，主线程继续往下运行
    t1.join();
    // 把子线程设置为分离线程
    // t1.detach();

    std::cout<< std::this_thread::get_id() << std::endl;
    std::cout<< "Main thread done!" << std::endl;
    // 主线程运行完成，查看如果当前进程还有未运行完成的子线程，进程就会异常终止
    return 0;
}
